use log::info;
use std::time::Duration;

#[tokio::main]
async fn main() {
    let mut oneshot: async_oneshot::Oneshot<u8> = async_oneshot::Oneshot::new();
    let (c, p) = oneshot.split();

    tokio::task::spawn(async {
        info!("start");
        tokio::time::sleep(Duration::from_secs(2)).await;
        c.send(8);
    });

    let r = p.await;
    info!("recv: {}", r);
}

// #[tokio::main]
// async fn main() {
//     simple_logger::SimpleLogger::new().init().unwrap();

//     let (c, p) = tokio::sync::oneshot::channel();

//     tokio::task::spawn(async {
//         info!("start");
//         tokio::time::sleep(Duration::from_secs(2)).await;
//         c.send(8);
//     });

//     let r = p.await.unwrap();
//     info!("recv: {}", r);
// }
